<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>BTK README</title>
    <style type="text/css">
      body, table, div, p, dl {
        font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
        font-size: 13px;
      }
      .title {
        text-align: center;
        font-size: 150%;
        font-weight: bold;
        margin: 10px 2px;
      }
      h1 {
        text-align: left;
        font-size: 150%;
      }
      h2 {
        /* font-size: 120%; */
      }
      h3 {
        /* font-size: 100%; */
      }
      h4 a.anchor {
        font-weight: bold;
        color: #153788;
        text-decoration: none;
      }
      h5 a.anchor {
        font-weight: bold;
        color: #153788;
        text-decoration: none;
      }
      a {
        color: #153788;
        font-weight: normal;
        text-decoration: none;
      }
      body {
        background: white;
        color: black;
        margin-right: 20px;
        margin-left: 20px;
      }
      .fragment {
        font-size: 100%;
      }
      pre.fragment {
        font-family: monospace, fixed;
        border: 1px solid #CCCCCC;
        background-color: #f5f5f5;
        padding: 4px 6px;
        margin: 4px 8px 4px 2px;
      }
      div.example {
        border: 1px solid #CCCCCC;
        background-color: #f5f5f5;
        padding: 4px 6px;
        margin: 4px 8px 4px 2px;
      }
      div.important {
        border: 1px solid #FF0000;
        background-color: #FF6666;
        padding: 4px 6px;
        margin: 4px 8px 4px 2px;
      }
      div.info
      {
        border: 1px solid #CCCCCC;
        background-color: #87CEFA;
        padding: 4px 6px;
        margin: 4px 8px 4px 2px;
      }
    </style>
  </head>
<body>
<!-- Generated by Doxygen 1.8.6 -->
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">Welcome To The Biomechanical Toolkit (BTK) </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><ul>
<li><a class="el" href="Readme.html#intro_sec">Introduction</a></li>
<li><a class="el" href="Readme.html#copy_sec">Copyright Notice</a></li>
<li><a class="el" href="Readme.html#organisation_sec">Organization</a></li>
<li><a class="el" href="Readme.html#doc_sec">Documentation</a></li>
<li><a class="el" href="Readme.html#compil_sec">Compilation</a><ul>
<li><a class="el" href="Readme.html#build_sec">Building with CMake</a></li>
<li><a class="el" href="Readme.html#config_sec">Configuration Options in CMake</a><ul>
<li><a class="el" href="Readme.html#config_extra_warnings">BTK_EXTRA_COMPILER_WARNINGS</a></li>
<li><a class="el" href="Readme.html#config_test_path">BTK_TESTING_DATA_PATH</a></li>
<li><a class="el" href="Readme.html#config_matlab">BTK_WRAP_MATLAB</a><ul>
<li><a class="el" href="Readme.html#config_matlab_redistributable">BTK_WRAP_MATLAB_REDISTRIBUTABLE_MEX_FILES</a></li>
</ul>
</li>
<li><a class="el" href="Readme.html#config_octave">BTK_WRAP_OCTAVE</a></li>
<li><a class="el" href="Readme.html#config_python">BTK_WRAP_PYTHON</a></li>
<li><a class="el" href="Readme.html#config_doc">BUILD_DOCUMENTATION</a></li>
<li><a class="el" href="Readme.html#config_examples">BUILD_EXAMPLES</a></li>
<li><a class="el" href="Readme.html#config_shared">BUILD_SHARED_LIBS</a></li>
<li><a class="el" href="Readme.html#config_test">BUILD_TESTING</a></li>
</ul>
</li>
<li><a class="el" href="Readme.html#internal_config_sec">Internal Configuration Options in CMake</a><ul>
<li><a class="el" href="Readme.html#internal_config_doc_readme">BUILD_INTERNAL_DOCUMENTATION_README</a></li>
<li><a class="el" href="Readme.html#internal_utility_easy_install">BUILD_INTERNAL_UTILITY_EASYINSTALL</a></li>
</ul>
</li>
</ul>
</li>
<li><a class="el" href="Readme.html#install_sec">Installation</a></li>
<li><a class="el" href="Readme.html#pb_sec">Common Problems</a></li>
<li><a class="el" href="Readme.html#data_sec">Getting Data</a></li>
<li><a class="el" href="Readme.html#run_sec">Running BTK</a></li>
<li><a class="el" href="Readme.html#add_sec">Adding A New Class</a></li>
<li><a class="el" href="Readme.html#help_sec">Getting Help / Mailing List</a></li>
</ul>
 <hr> <h1><a class="anchor" id="intro_sec"></a>
Introduction</h1>
<p>BTK is an open-source library for biomechanical analysis. The structure of this library is inspired by the <a href="http://www.vtk.org">VTK</a> and <a href="http://www.itk.org">ITK</a> projects.</p>
<p>This README is written for BTK version 0.1 and greater. For more information about BTK and additional resources see the web page at <a href="http://code.google.com/p/b-tk">http://code.google.com/p/b-tk</a>.</p>
 <hr> <h1><a class="anchor" id="copy_sec"></a>
Copyright Notice</h1>
<p>BTK use the generous open-source New BSD license. Yes, you can use BTK in commercial products. The complete text of the copyright follows.</p>
<pre class="fragment">/*
 * The Biomechanical ToolKit
 * Copyright (c) 2009-2013, Arnaud Barré
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 
 *     * Redistributions of source code must retain the above
 *       copyright notice, this list of conditions and the following
 *       disclaimer.
 *     * Redistributions in binary form must reproduce the above
 *       copyright notice, this list of conditions and the following
 *       disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 *     * Neither the name(s) of the copyright holders nor the names
 *       of its contributors may be used to endorse or promote products
 *       derived from this software without specific prior written
 *       permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */ 
</pre> <hr> <h1><a class="anchor" id="organisation_sec"></a>
Organization</h1>
<p>The BTK source code repository is organized into six major sections.</p>
<ul>
<li>The toolkit source code is found in the directory <b>Code</b>. This directory has the following subdirectories.<ul>
<li><b>Common:</b> Core classes commonly used by other kits</li>
<li><b>IO:</b> Classes for reading and writing data</li>
<li><b>BasicFilers:</b> Simple filters to adapt data</li>
</ul>
</li>
<li>The <b>Examples</b> directory contains ressources to use BTK.</li>
<li>The <b>Testing</b> directory contains lots of testing examples. These are undocumented tests but can be helpful in some cases.</li>
<li>The <b>Utilities</b> directory contains ressources or libraries required to build BTK.</li>
<li>The <b>Wrapping</b> directory contains code related to BTK and various programing language to bridge BTK with them.</li>
</ul>
 <hr> <h1><a class="anchor" id="doc_sec"></a>
Documentation</h1>
<p>The BTK source code is commented and permits to construct the API documentation by using <a href="http://www.doxygen.org">Doxygen</a>. For more information to construct the API documentation, see the option <a class="el" href="Readme.html#config_doc_api">BUILD_DOCUMENTATION_API</a> in <a class="el" href="Readme.html#config_sec">Configuration Options in CMake</a>.  <hr> <h1><a class="anchor" id="compil_sec"></a>
Compilation</h1>
<p>The Biomechanical ToolKit (BTK) was tested on 32-bit and 64-bit architectures under Windows (Windows XP, Windows Vista, Windows 7) with <a href="http://www.microsoft.com/express/vc/">Microsoft Visual C++ Express</a> (2008 and 2010), Mac OS X (Panther, Leopard, Snow Leopard) with <a href="http://developer.apple.com/tools/xcode/">XCode</a> (1.5, 3.1 and 3.2.5 respectively) and Linux (Ubuntu 9.10, 10.04 and 10.10) with GCC (4.3, 4.4 and 4.5 respectively). The compilation process only requires the use of a terminal/command prompt. BTK use <a href="http://www.cmake.org">CMake</a> 2.6.2 or greater to generate its build system, so it is necessary to download it from <a href="http://www.cmake.org/HTML/Download.html">http://www.cmake.org/HTML/Download.html</a>. The instructions below cover the basics of running CMake for BTK under the assumption that CMake is already installed. See the CMake web page for details on <a href="http://www.cmake.org/HTML/Install.html">installing</a> and <a href="http://www.cmake.org/HTML/RunningCMake.html">running</a> CMake.</p>
<p>Compiling BTK requires a complete BTK source tree. Running BTK regression tests (see option <a class="el" href="Readme.html#config_test">BUILD_TESTING</a> in <a class="el" href="Readme.html#config_sec">Configuration Options in CMake</a>) requires for the first an internet connection to download data files from <a href="ftp://ftp.c3d.org">ftp://ftp.c3d.org</a>.</p>
<h2><a class="anchor" id="build_sec"></a>
Building with CMake</h2>
<div class="important"> <b>Note:</b> For the users which want to build BTK with the Matlab wrapping option on any OS, you can use the java utility "EasyInstallWithRedistributableMatlabToolbox.jar" located in the root of BTK sources. It is a little utility which call scripts to configure/compile/install BTK with the options <a class="el" href="Readme.html#config_matlab">BTK_WRAP_MATLAB</a> and <a class="el" href="Readme.html#config_matlab_redistributable">BTK_WRAP_MATLAB_REDISTRIBUTABLE_MEX_FILES</a>. </div><p>CMake must be run to generate a build system for BTK. The build system may be placed either in the BTK source tree (an in-source build) or in a separate binary tree (an out-of-source build). The use of out-of-source builds is strongly encouraged because they make it easy to have multiple builds with different configurations sharing the same source tree. Once a single in-source build has been created it is the only build tree that can be associated with that source tree. A source tree may not be used both for an in-source build and an out-of-source build, but any number of out-of-source builds may share a source tree that does not have an in-source build. Having multiple out-of-source builds is particularly useful for installing BTK on multiple architectures using a single source tree on a shared disk.</p>
<p>CMake provides both a command-line tool and interactive interfaces. Advanced users may wish to use the command-line tool but here only the CMake interactive interface is documented.</p>
<dl class="section user"><dt>- Windows</dt><dd>Run the cmake-gui dialog to get started. It must be executed from an environment configured to run the compiler to be used. In the case of the Visual Studio IDE no special environment is needed and cmake-gui can be started from its icon. In the case of a Visual Studio NMake, Borland C++, or MinGW build the cmake-gui dialog should be executed from a command prompt with the appropriate environment set. <div class="example"> <b>Example:</b> Microsoft Visual C++ 2008 Express environment with NMake<br/>
 With Microsoft Visual C++ 2008 Express, use the shorcut in the Start menu: Programs &gt; Microsoft Visual C++ 2008 Express Edition &gt; Visual Studio Tools &gt; Visual Studio 2008 Command Prompt. Launch cmake-gui from the new command prompt "c:\Program Files\CMake 2.6\bin\cmake-gui.exe". </div> <br/>
The cmake-gui dialog prompts for the location of the source and binary trees("Where is the source code" and "Where to build the binaries" respectively). Once these are set then CMake is ready for a first pass at configuring the BTK build system. Use the "Configure" button to initiate this process. A separate dialog will appear during the first configuration step to prompt for generator selection. After a while the cmake-gui dialog will present a set of configuration options. See <a class="el" href="Readme.html#config_sec">Configuration Options in CMake</a> for details on the meaning of each of these options. After setting the options as desired press "Configure" again to make another pass at configuring BTK. New options may appear when earlier options are adjusted. Keep adjusting options and pressing "Configure" until the desired configuration is reached. Finally press the "Generate" button to actually generate the build system. <div class="example"> <b>Example:</b> Microsoft Visual C++ 2008 Express environment with NMake<br/>
 The source tree must be set to the BTK root (e.g. "c:\Documents and Settings\jDoe\My Documents\BTK"). The binary tree should be set for an out-of-source build (e.g. "c:\Documents and Settings\jDoe\My Documents\BTK\build"). The generator to select in the separate dialog is "NMake Makefiles" with the "Use default native compilers". After required checks, red lines are added in the cmake-gui dialog. </div> <br/>
Now that the build system has been generated, the corresponding native tools can be used to build BTK. In the case of the Visual Studio IDE simply run it and load the BTK workspace or solution file from the binary tree specified in the cmake-gui dialog. Select and build the ALL_BUILD target. In the case of a Visual Studio NMake, Borland C++, or MinGW build use the corresponding make tool (nmake, make, and make, respectively) from the command line. <div class="example"> <b>Example:</b> Microsoft Visual C++ 2008 Express environment with NMake<br/>
 In the Visual Studio 2008 Command Prompt, go to the build directory. After that, type nmake in the command prompt to compile the code. </div></dd></dl>
<dl class="section user"><dt>- Mac OS X</dt><dd>Double click on the CMake app bundle. The CMake dialog prompts for the location of the source and binary trees("Where is the source code" and "Where to build the binaries" respectively). Once these are set then CMake is ready for a first pass at configuring the BTK build system. Use the "Configure" button to initiate this process. A separate dialog will appear during the first configuration step to prompt for generator selection. After a while the CMake dialog will present a set of configuration options. See <a class="el" href="Readme.html#config_sec">Configuration Options in CMake</a> for details on the meaning of each of these options. After setting the options as desired press "Configure" again to make another pass at configuring BTK. New options may appear when earlier options are adjusted. Keep adjusting options and pressing "Configure" until the desired configuration is reached. Finally press the "Generate" button to actually generate the build system. <div class="example"> <b>Example:</b> XCode environment with Make<br/>
 The source tree must be set to the BTK root (e.g. /Users/jDoe/Downloads/BTK). The binary tree should be set for an out-of-source build (e.g. /Users/jDoe/Downloads/BTK/build). The generator to select in the separate dialog is "Unix Makefiles" with the "Use default native compilers". After required checks, red lines are added in the CMake dialog. </div> <br/>
Now that the build system has been generated, the corresponding native tools can be used to build BTK. In the case of Unix Makefiles build use the make tool from the command line. <div class="example"> <b>Example:</b> XCode environment with Make<br/>
 Open a terminal (/Applications/Utilies/Terminal) and go to the build directory. After that, type <code>make</code> in the command prompt to compile the code. </div></dd></dl>
 <hr> <h2><a class="anchor" id="config_sec"></a>
Configuration Options in CMake</h2>
<p>BTK is a toolkit providing a wide variety of functionality. Several configuration options are available to customize the BTK build system. These options are configured through an interactive CMake interface as described <a class="el" href="Readme.html#build_sec">Building with CMake</a> above. Note that not all options are available on all platforms, and some options are available only when other options are set to a particular value.</p>
<p>The interactive CMake interface provides brief documentation for every option. Some options have more meaning than can be described in one sentence, so additional documentation is provided here:</p>
<h3><a class="anchor" id="config_extra_warnings"></a>
BTK_EXTRA_COMPILER_WARNINGS</h3>
<p>Add compiler flags in debug mode to be more verbose when the compiler find some warnings (available only for GCC).</p>
<h3><a class="anchor" id="config_test_path"></a>
BTK_TESTING_DATA_PATH</h3>
<p>Path containing the input data for the unit tests. Download <code>BTKData-x.y.z.zip</code> (where <code>x.y.z</code> corresponds to your version of BTK), unzip it (for example in the folder Testing), and set this variable to the installation path. You can also use the folder BTKData hosted on the <a href="https://code.google.com/p/b-tk/source/list?repo=data">git server</a>. The script must find the folder "Input" otherwise most of the unit tests will fail.</p>
<h3><a class="anchor" id="config_matlab"></a>
BTK_WRAP_MATLAB</h3>
<p>Enable/Disable generation of BTK bindings in the Matlab language. In order to build the Matlab-based BTK interpreter, the target computer needs to have Matlab 7.0.4 or above installed. To turn on Matlab wrapping, set BTK_WRAP_MATLAB to ON during the configuration process.</p>
<h4><a class="anchor" id="config_matlab_redistributable"></a>
BTK_WRAP_MATLAB_REDISTRIBUTABLE_MEX_FILES</h4>
<p>This option is activated if BTK_WRAP_MATLAB was activated during the previous CMake configuration iteration. BTK_WRAP_MATLAB_REDISTRIBUTABLE_MEX_FILES is useful for target machines without the same compiler environment. This option forces the build system to be in Release mode with generation of static BTK libraries. BTK_WRAP_MATLAB_REDISTRIBUTABLE_MEX_FILES is not compatible with BUILD_SHARED_LIBS.</p>
<div class="info"> <b>Note:</b> This options is only relevant for Windows XP/Vista. The other OS (Mac/Linux) and Windows 7 (or above) don't need this option to redistribute the Matlab toolbox. </div><h3><a class="anchor" id="config_octave"></a>
BTK_WRAP_OCTAVE</h3>
<p>Enable/Disable generation of BTK bindings in the Octave language. In order to build the Octave-based BTK interpreter, the target computer needs to have Octave 3.2.4 or above installed. To turn on Octave wrapping, set BTK_WRAP_OCTAVE to ON during the configuration process.</p>
<div class="info"> <b>Building Octave under Windows</b> <br/>
In case you use Octave compiled with MinGW, you have to compile BTK with the same compiler. Fortunately, it is provided with Octave. However, CMake cannot detect it automatically. For detailed build instructions to compile BTK with MinGW provided with Octave, go to the wiki of the BTK website or in the building instructions provided with the C++ API of BTK. </div><h3><a class="anchor" id="config_python"></a>
BTK_WRAP_PYTHON</h3>
<p>Enable/Disable generation of BTK bindings in the Python language. In order to build the Pyton-based BTK interpreter, the target computer needs to have <a href="http://www.python.org">Python</a> 2.5 or above installed, as well as <a href="http://www.swig.org">SWIG</a> 2.0 or above.</p>
<h3><a class="anchor" id="config_doc"></a>
BUILD_DOCUMENTATION</h3>
<p>The BTK documentation is generated by <a href="http://www.doxygen.org">Doxygen</a>. The option BUILD_DOCUMENTATION activates by default the sub-option BUILD_DOCUMENTATION_API. You have to select the other option manually if you want to build their documentation.</p>
<h4><a class="anchor" id="config_doc_api"></a>
BUILD_DOCUMENTATION_API</h4>
<p>This option generates the API documentation and can be found in "Documentation/API" from the the build directory. This documentation is in a HTML format. The main file is the file Readme.html.</p>
<h4><a class="anchor" id="config_doc_api_unselected"></a>
BUILD_DOCUMENTATION_API_UNSELECTED_MODULES</h4>
<p>This option forces to build the full API documentation.</p>
<h3><a class="anchor" id="config_examples"></a>
BUILD_EXAMPLES</h3>
<p>Active the building of examples in the folder Examples.</p>
<h3><a class="anchor" id="config_shared"></a>
BUILD_SHARED_LIBS</h3>
<p>Sets whether the compiled BTK libraries will be shared libraries or static libraries. When linking executables against static libraries the needed symbols will be copied from the libraries into the executables enabling them to run without access to the original libraries. When linking executables against shared libraries references to the symbols are placed into the executables. This has the advantage that many executables can share a large library without producing many copies of its code. <br/>
<br/>
Shared libraries have the disadvantage that they must be found at runtime in order for an executable to run. Each operating system supporting shared libraries has a component known as the dynamic loader. This component is responsible for finding the shared libraries needed by an executable when it is run. In order to run BTK executables from the build tree when using shared libraries one may need to help the dynamic loader find the libraries (usually the bin subdirectory of the build tree). <br/>
<br/>
On Windows, the dynamic loader will look for shared libraries in the directory containing the executable, in directories listed in the PATH environment variable, and in some system directories. Since BTK places all of its executables and libraries in the same directory nothing needs to be set to get them to run. However, when one builds outside projects against BTK the PATH environment variable must be set to point at the directory containing the BTK shared libraries. <br/>
<br/>
On UNIX-style platforms, the dynamic loader will use an environment variable such as LD_LIBRARY_PATH (Linux and many UNIX systems) or DYLD_LIBRARY_PATH (Mac OS X) to look for shared libraries. In order to run BTK executables from the build tree one must set the appropriate environment variable to point at the directory containing the BTK shared libraries. The same environment setting must be used for running outside projects build against the shared BTK libraries.</p>
<h3><a class="anchor" id="config_test"></a>
BUILD_TESTING</h3>
<p>Each BTK class has unit tests and/or regression tests to verify their functionnalities. All the tests are in the directory Testing/Code. All the required input data should be inserted in the Testing/Data/Input directory and the generated ouput data should be inserted in the Testing/Data/Output. These tests use a modified version of CxxTest embedded in the directory Utilities. This version suppress the Perl/Python dependencies and replace them by C macros. As with the regular CxxTest library, the tests are declared and implemented in a header file. A test class requires to be defined by macro CXXTEST_SUITE. All the class' methods used for tests purpose must be defined by CXXTEST_TEST. Finally, the class must be registred by using CXXTEST_SUITE_REGISTRATION and tests by CXXTEST_TEST_REGISTRATION. The header containing the suite of tests has to be included in the CXX file calling the runner.</p>
 <hr> <h2><a class="anchor" id="internal_config_sec"></a>
Internal Configuration Options in CMake</h2>
<div class="info"> The next listed options should be used only by the mainteners of this project as they modify files in the sources of the project. To activate these options, the CMake bool option BTK_SHOW_INTERNAL_PROJECT_OPTIONS must be activated first. </div><h3><a class="anchor" id="internal_config_doc_readme"></a>
BUILD_INTERNAL_DOCUMENTATION_README</h3>
<p>This option updates this file (Readme.html) by using the content of the file /Documentation/Readme/Readme.dox.in from the source directory. Modify Readme.dox.in, compile the project and you'll find a new Readme.html file in the root of sources.</p>
<h3><a class="anchor" id="internal_utility_easy_install"></a>
BUILD_INTERNAL_UTILITY_EASYINSTALL</h3>
<p>Utility used to generate the Java file "EasyInstallWithRedistributableMatlabToolbox.jar" in the root of this project. The activation of this option requires Java SDK not JRE.</p>
 <hr> <h1><a class="anchor" id="install_sec"></a>
Installation</h1>
<p>Installing BTK from a source distribution requires first that it be compiled in a build tree. See the <a class="el" href="Readme.html#compil_sec">Compilation</a> Compilation section above for details. Once BTK has been compiled in a build tree one may build the install target to actually put BTK in an installation tree. If BTK was built using a CMake Makefile generator then this is done by running "nmake install" or "make install" from the top of the build tree. If BTK was built using a CMake project file generator (such as Visual Studio), then building the INSTALL project from inside the IDE will install BTK. The installation process will install all files in a directory structure rooted at the directory specified by CMAKE_INSTALL_PREFIX. </p>
<div class="example"> <b>Example:</b> Microsoft Visual C++ 2008 Express environment with NMake<br/>
 After the end of the compilation, type <code>nmake install</code> to install BTK. By default CMAKE_INSTALL_PREFIX is set to "c:\Program Files\BTK")<br/>
<b>Example:</b> XCode environment with Make<br/>
 After the end of the compilation, type <code>sudo make install</code> to install BTK. the command <code>sudo</code> is required if your user login is not in the admin group. By default CMAKE_INSTALL_PREFIX is set to "/usr/local") </div><p>For the Matlab Wrapping (see <a class="el" href="Readme.html#config_matlab">BTK_WRAP_MATLAB</a>), a directory is generated containing the compiled MEX-Files and some copied M-Files. These M-Files contain the description of the MEX-Functions and their options. As with regular Matlab functions, use the <code>help</code> or <code>doc</code> <code>functionname</code> to read the function's description. You can also use the command <code>help btk</code> or <code>doc btk</code> to visualize the complete btk toolbox help. <br/>
In Matlab, the BTK project can be seen as a toolbox. You have only to add in the Matlab Path (File &gt; Set Path...), the root of the btk toolbox. The btk toolbox path is for example "CMAKE_INSTALL_PREFIX/share/btk-0.1/Wrapping/Matlab/btk".</p>
 <hr> <h1><a class="anchor" id="pb_sec"></a>
Common Problems</h1>
<ul>
<li>Some compiler could not be used with Wrapping/Matlab into some OS. Mathwoks doesn't support all compiler on every platform (Linux/Mac/Windows).</li>
</ul>
 <hr> <h1><a class="anchor" id="data_sec"></a>
Getting Data</h1>
<p>Regression tests in BTK required C3D files. These files are on the net to reduce the size of the BTK source package. The first time you want to build the tests (BUILD_TESTING option in CMake), CMake will download the required files from <a href="ftp://ftp.c3d.org">ftp://ftp.c3d.org</a>. This download take a long time due to a check betwen EPSV and PASV mode... This problen is due to the CMake binary option build and cannot be fixed by a script.</p>
 <hr> <h1><a class="anchor" id="run_sec"></a>
Running BTK</h1>
<p>Many tests/examples in Testing directory will be compiled if BUILD_TESTING are enable in CMake. To run these tests, just type CTest (or "c:\Program Files\CMake 2.6\bin\ctest.exe") or <code>bin/TDD</code> from the build directory. If you have built shared libraries, make sure the PATH environment variable (Windows) or the LD_LIBRARY_PATH (Unix) point to the shared libraries (see above documentation of the BUILD_SHARED_LIBS for details)</p>
 <hr> <h1><a class="anchor" id="add_sec"></a>
Adding A New Class</h1>
<p>There are several ways to extend BTK. The simplest way is, in your own code,to create classes that inherit from the appropriate BTK classes. For example a filter/process will inherits from btk::Process until an input/output will inherit from btk::DataObject.</p>
 <hr> <h1><a class="anchor" id="help_sec"></a>
Getting Help / Mailing List</h1>
<p>For general information go to the BTK web site <a href="http://code.google.com/p/b-tk">http://code.google.com/p/b-tk</a></p>
<p>If you run into problems, your best bet is to join the BTK mailing list. Visit <a href="http://groups.google.com/group/btk-users">http://groups.google.com/group/btk-users</a> to join the list. </p>
</div></div><!-- contents -->
</body>
</html>
